package se.gala.core;

import se.gala.core.abstracts.AbstractGame;
import se.gala.games.GameFactoryCommands;
import se.gala.games.SupportedGameTypes;
import se.gala.games.UnsupportedGameTypeException;
import se.gala.utils.GGObject;

public abstract class GameDispatcher extends GGObject {

	protected static GameDispatcher selfInstance;

	protected GameDispatcher() {
		selfInstance = this;
		Agora.setGameDispatcher(this);
	}

	abstract public AbstractGame executeCommand(GameFactoryCommands command,
			SupportedGameTypes type, AbstractGame oldGameReference)
			throws UnsupportedGameTypeException;
	
	abstract public AbstractGame getGameBySessionId(String gameSessionId);
}
